package com.ftw.commons.log

import okhttp3.logging.HttpLoggingInterceptor

/**
 * 描    述：
 * 作    者：fantianwen
 * 时    间：2020-02-17
 */

class HttpLogger : HttpLoggingInterceptor.Logger {
    private val mMessage = StringBuilder()
    override fun log(message: String) {

        var msg = message
        // 请求或者响应开始
        if (msg.startsWith("--> POST")) {
            mMessage.setLength(0)
        }

        // 以{}或者[]形式的说明是响应结果的json数据，需要进行格式化
        if ((msg.startsWith("{") && msg.endsWith("}"))
            || (msg.startsWith("[") && msg.endsWith("]"))
        ) {
            msg = JsonUtil.formatJson(msg)
        }
        mMessage.append(msg.plus("\n"))
        // 请求或者响应结束，打印整条日志
        if (message.startsWith("<-- END HTTP")) {
            LogUtils.d(mMessage.toString())
        }
    }

}